# db_pool.py
import pymysql
from dbutils.pooled_db import PooledDB
from config import Config

# 创建数据库连接池
db_pool = PooledDB(
    creator=pymysql,
    maxconnections=20,  # 连接池允许的最大连接数
    mincached=2,       # 初始化时连接池中至少创建的空闲连接
    maxcached=5,       # 连接池中最多闲置的连接
    maxshared=3,       # 共享连接数
    blocking=True,     # 连接池中如果没有可用连接后是否阻塞等待
    host=Config.MYSQL_HOST,
    user=Config.MYSQL_USER,
    password=Config.MYSQL_PASSWORD,
    database=Config.MYSQL_DB,
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

def get_db_connection():
    """从连接池获取数据库连接"""
    return db_pool.connection()